/*
题目描述
给定 n,p 求 1∼n 中所有整数在模 p 意义下的乘法逆元。

这里 a 模 p 的乘法逆元定义为 ax≡1(modp) 的解。

输入格式
一行两个正整数 n,p。

输出格式
输出 n 行，第 i 行表示 i 在模 p 下的乘法逆元。

输入保证 p 为质数。
*/
#include<bits/stdc++.h>
#define endl "\n";
#define ll long long
#define all(rq) rq.begin(),rq.end()

using namespace std;
const int INF=0x3f3f3f3f;
int exgcd(ll a,ll b,ll &x,ll &y){ //本质上是求解ax+by=c 的一个有效解c=a%b   !!!ax+by=c=gcd(a,b)=gcd(b,a%b)->p*x+(a%p)*y=c  ->x=y,y=x-a/b
	if(!b){ //当b为0时结束
		x=1,y=0;
		return a; //返回a与b的最大公约数
	}
	int ret=exgcd(b,a%b,x,y);
	int x0=y;
	int y0=x-a/b*y;
	x=x0;
	y=y0;
	
	return ret;
} 

int main(){
	int n,p;
	cin>>n>>p;
	for(int i=1;i<=n;i++){
		ll x,y;
		int ret=exgcd(i,p,x,y);
		
		x=(x%p+p)%p; //当a小于b时逆元为负数
		cout<<x<<endl;
	}
	return 0;
}